# This message represents not just a convex space, but a convex
# *PLANAR* space; that is, a space which is defined by a set of
# planes which "cut" it.
#
# Originally, I called this type "Polyhedron," but then I
# realized that this message was going to be used, often, to
# communicate infinite spaces, whereas a Polyhedron normally
# is required to be finite in size.



# This is the primary data of this message: a (non-empty) set of
# planes, which define a space.

Plane[] planes

# planes = []
# aPlane = [0,0,0,0]
# planes.append(aPlane) #This will make array an array of planes since typing is dynamic 

# these two fields cover the origin of the object.  It is there
# to tell us which objects we need to intersect with which others.
# We will intersect two shapes if the sensor or algorithm fields
# mismatch.  The idea here is that we need to intersect overhead
# camera cones with head cones, for example; but we need to *NOT*
# bother with two different object detectors which processed the
# same source image, using the same algorithm, but different
# instances of it (such as two histogram detectors trained to
# different types of objects).
#
# This is sort of a hack; we need to find a better way to do this.
# Maybe the blackboard should be responsible for determining what
# is worth intersecting?

string sensor
string algorithm

# This is a payload of any arbitrary data which you want to
# associate with this cone.  If we intersect multiple cones,
# the resulting interesction will carry the concatenation of
# all of these payloads.  The object DB will decide how to
# parse this into other messages.

string aux_payload

